// 正则表达式
var myAtoi = function (str) {
  let res = str.trim().match(/^(\-|\+)?\d+/g);
  return res ? Math.max(Math.min(Number(res[0]), 2 ** 31 - 1), -(2 ** 31)) : 0;
};

// 无视开头空格
// 返回有符号整数
// 无视整数部分后面的字符
// 范围在 32 位内
// 其他情况返回 0
var myAtoi = function (str) {
  const number = parseInt(str, 10);

  if (isNaN(number)) {
    return 0;
  } else if (number < Math.pow(-2, 31) || number > Math.pow(2, 31) - 1) {
    return number < Math.pow(-2, 31) ? Math.pow(-2, 31) : Math.pow(2, 31) - 1;
  } else {
    return number;
  }
};
